home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t7.d64 / tictacarith.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  6KB  |  220 lines

  1. 5 POKE53280,8:POKE53281,8:POKE54277,8
  2. 6 PRINT"[147][142] [208][207] [221] [206][183]   [160][208][207] [206][205] [206][183]    [206][205] [207][205] [221] [208][207][167]  [165]
  3. 7 [153]" THENFN (null) FN     THENFN (null)SQR FN     (null)SQR (null)(null) (null) THENFNTHENTANTANFN
  4. 8 PRINT" [167][165] [221] [205][175]    [167][165] [165][167] [205][175]    [165][167] [165][205] [221] [167][165][167]  [165]
  5. 10 [153],"WRITTEN FOR THE PET
  6. 11 PRINT,"      BY
  7. 12 [153]," JO ANN COMITO
  8. 15 PRINT,"ADAPTED FOR THE 64
  9. 16 [153],"      BY
  10. 17 PRINT,"STEVEN DARNOLD
  11. 18 [153],"P.O. BOX 201
  12. 19 PRINT,"ALEXANDRA, NEW ZEALAND";
  13. 30 DIMX$(6),O$(6),B$(7),OP$(4,5),AN(9,2)
  14. 70 FORI=1TO4000:NEXTI
  15. 80 F=0
  16. 90 DD$=""
  17. 100 RR$=""
  18. 110 B$(1)="[176][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][192][174]"
  19. 120 B$(2)="[221]1           [221]2           [221]3           [221]"
  20. 130 B$(3)="[221]            [221]            [221]            [221]"
  21. 140 B$(4)="[171][192][192][192][192][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][192][192][192][192][179]"
  22. 150 B$(5)="[221]4           [221]5           [221]6           [221]"
  23. 160 B$(6)="[221]7           [221]8           [221]9           [221]"
  24. 170 B$(7)="[173][192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][192][192][192][192][189]"
  25. 180 X$(1)="[158]   [205][223][146]  [169][206][146]  "
  26. 190 X$(2)="   [223][205][223][169][206][146][169]  "
  27. 200 X$(3)="    [223][205][206][146][169]   "
  28. 210 X$(4)="    [169][206][205][223][146]   "
  29. 220 X$(5)="   [169][206][146][169][223][205][223][146]  "
  30. 230 X$(6)="   [206][146][169]  [223][205][146] "
  31. 240 O$(1)="[149]   [169]  [223][146]    "
  32. 250 O$(2)="  [169][146][169]  [223][223][146]   "
  33. 260 O$(3)="   [146]     [146]   "
  34. 270 O$(4)="   [146]     [146]   "
  35. 280 O$(5)="  [223][223][146]  [169][146][169]   "
  36. 290 O$(6)="   [223]  [146][169]    "
  37. 300 PRINT"[147]         T I C T A C A R I T H"
  38. 305 PRINT"THIS GAME IS FOR TWO PEOPLE.  THE OBJECT
  39. 310 [153]"OF THE GAME IS TO GET THREE BOXES IN A
  40. 320 PRINT"ROW (HORIZONTALLY, VERTICALLY OR
  41. 330 [153]"DIAGONALLY).  YOU WIN A BOX BY SOLVING"
  42. 340 [153]"THE PROBLEM IN THE BOX.  IF YOU SOLVE   "
  43. 350 [153]"IT INCORRECTLY, THEN YOUR OPPONENT CAN  "
  44. 360 [153]"TRY TO WIN THAT BOX.ON"
  45. 370 [141]830
  46. 380 A$[178]"N"
  47. 390 [139][200](A$,1)[178]"N"[175]F[178]5[167]470
  48. 400 [140]
  49. 410 [129]I[178]1[164]4:[129]J[178]1[164]5:[135]OP$(I,J):[130]J,I
  50. 420 [131]A + B,"  2"," 19","  2"," 19",A - B," 15"," 40","  1"," 14"
  51. 430 [131]"A (null) B","  2"," 10","  2"," 10","A / B","  0","  0","  0","  0"
  52. 440 [139][200](A$,1)[178]"N"[167]470
  53. 450 [141]860@CHANGE RANGE:EF[178]0:[141]1150@CHECK RANGE
  54. 460 [139]EF[178]1[167]A$[178]"Y":[140]:[137]410
  55. 470 [141]1270@[153] BOXES
  56. 480 [129]I[178]1[164]9:AN(I,2)[178]0:[130]I
  57. 490 [141]1340@GENERATE PROBS
  58. 500 N[178]N[170]1:[139]N[173]2[179][177][181](N[173]2)[167]PL$[178]"(null)"
  59. 510 [139]N[173]2[178][181](N[173]2)[167]PL$[178]"O"
  60. 520 DD[178]22:RR[178]1:[141]810
  61. 530 [153]"PLAYER "PL$" YOUR TURN      WHICH BOX?   CMDCMD";:[151]204,0
  62. 540 [151]198,0:[146]198,1:[161]BO$:BO[178][197](BO$):[151]204,1:[153]" "
  63. 560 [139]BO[179][177][181](BO)[176]BO[179]1[176]BO[177]9[167]520
  64. 570 [139]AN(BO,2)[179][177]0[167]520
  65. 580 F[178]0
  66. 590 [141]1480@[137] BOX[171][161] ANS
  67. 600 FL[178]0:F[178]F[170]1
  68. 610 [139]AN(BO,1)[178]AN[167][141]2060:[141]1630
  69. 620 [139]N[178]9[175]FL[178]1[167]750
  70. 630 [139]FL[178]1[167]500
  71. 640 [139]FL[178]2[167]770
  72. 650 DD[178]23:RR[178]17:[141]810
  73. 660 [153]"WRONG!":[141]2010:[129]I[178]1[164]250:[130]I
  74. 670 [139]F[178]2[167]720
  75. 680 [139]PL$[178]"(null)"[167]PL$[178]"O":[137]700
  76. 690 [139]PL$[178]"O"[167]PL$[178]"(null)"
  77. 700 DD[178]22:RR[178]1:[141]810
  78. 710 [153]" PLAYER "PL$" TRY BOX                   CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD"BO;
  79. 720 DD[178]23:RR[178]17:[141]810:[153]"                  ";
  80. 730 [139]F[178]2[167][141]1480:[137]500
  81. 740 [137]590
  82. 750 [129]I[178]1[164]900:[130]I
  83. 760 [153]"LOADIT IS A TIE!"
  84. 770 [129]I[178]1[164]2000:[130]I:[153]"LOADPLAY AGAIN?":[151]198,0:[146]198,1:[161]A$
  85. 780 [139]A$[178]"Y"[167]N[178]0:F[178]5:[153]"LOAD":[137]380
  86. 790 [153]"LOADI HOPE YOU ENJOYED YOUR GAME.
  87. 800 END
  88. 810 PP$=""+LEFT$(DD$,DD)+LEFT$(RR$,RR)
  89. 820 PRINTPP$;:RETURN
  90. 830 PRINT"PRESS[149][167]SHIFT[146][145][157][157][157][157][157][164][164][164][164][164][165]TO BEGIN."
  91. 840 WAIT653,1,1:WAIT653,1
  92. 850 RETURN
  93. 860 PRINT"[147]BELOW IS A LIST OF THE OPERATIONS AND "
  94. 870 PRINT"THE CURRENT RANGES OF THE NUMBERS."
  95. 880 PRINT"YOU MAY TYPE IN THE NEW RANGE TO THE "
  96. 890 PRINT"RIGHT OF EACH LINE.  IF YOU WISH TO "
  97. 900 PRINT"LEAVE A LINE UNCHANGED, JUST PRESS THE"
  98. 910 PRINT"RETURN KEY.  YOU MAY ELIMINATE AN OP-"
  99. 920 PRINT"ERATION BY SETTING THE UPPER AND LOWER"
  100. 930 PRINT"LIMITS TO 0."
  101. 940 PRINT"     [146][221]CURRENT[146][221]CURRENT[146][221]  NEW  [146][221]  NEW  [146][221]"
  102. 950 PRINT"PROB [146][221]A-RANGE[146][221]B-RANGE[146][221]A-RANGE[146][221]B-RANGE[146][221]"
  103. 960 PRINT"TYPE [146][221] LO[221] HI[146][221] LO[221] HI[146][221] LO[221] HI[146][221] LO[221] HI[146][221]"
  104. 970 PRINT"[163][163][163][163][163][221]";:FORI=1TO8:PRINT"[163][163][163][221]";:NEXTI:PRINT
  105. 980 FORI=1TO4
  106. 990 FORJ=1TO5:PRINTOP$(I,J);"[221]";:NEXTJ
  107. 1000 FORJ=1TO4:PRINT"   [221]";:NEXTJ:PRINT
  108. 1010 PRINT"     [221]";:FORJ=1TO8:PRINT"   [221]";:NEXTJ:PRINT
  109. 1020 NEXTI
  110. 1030 FORDD=13TO19STEP2
  111. 1040 FORRR=22TO34STEP4
  112. 1050 T=1:T1$=""
  113. 1060 GOSUB810
  114. 1070 PRINT"?";
  115. 1080 GETT$:IFT$=""THEN1080
  116. 1090 IFT$=CHR$(13)ANDT=1THENPRINT"[157] ";:NEXTDD:RETURN
  117. 1100 IFT$=CHR$(13)THENPRINT"[157] ";:OP$((DD-11)/2,(RR-18)/4+1)=T1$:NEXTRR:NEXTDD:RETURN
  118. 1110 IFT$=CHR$(20)THENPRINT"[157] [157][157]?";:GOTO1080
  119. 1120 PRINT"[157]";T$;
  120. 1130 IFT$<"0"ORT$>"9"THENPRINT"[157] [157]?";:GOTO1080
  121. 1140 T1$=T1$+T$:T=T+1:GOTO1070
  122. 1150 IFOP$(4,4)="0"THENOP$(4,4)="1"
  123. 1160 FORI=1TO4:FORJ=2TO4STEP2
  124. 1170 V1=VAL(OP$(I,J)):V2=VAL(OP$(I,J+1))
  125. 1180 IFV1>V2THENEF=1:PRINT:PRINT"LOW LIMIT MUST BE LESS THAN UPPER LIMIT":GOSUB830:RETURN
  126. 1190 IFV1<-99ORV1>100ORV2<-99ORV2>100THENEF=1:GOTO1210
  127. 1200 NEXTJ,I:RETURN
  128. 1210 PRINT:PRINT"NUMBERS MUST BE BETWEEN -99 AND 100":GOSUB830:RETURN
  129. 1220 REM**PRINT OUT O**
  130. 1230 DD=DO:RR=RO:GOSUB810
  131. 1240 FORI=1TO6:PRINTO$(I):DD=DD+1:GOSUB810:NEXTI:RETURN
  132. 1250 DD=DX:RR=RX:GOSUB810
  133. 1260 FORI=1TO6:PRINTX$(I):DD=DD+1:GOSUB810:NEXTI:RETURN
  134. 1270 PRINT"[147]";B$(1);B$(2);
  135. 1280 FORI=1TO5:PRINTB$(3);:NEXT
  136. 1290 PRINTB$(4);B$(5);
  137. 1300 FORI=1TO5:PRINTB$(3);:NEXT
  138. 1310 PRINTB$(4);B$(6);
  139. 1320 FORI=1TO5:PRINTB$(3);:NEXT
  140. 1330 PRINTB$(7);:RETURN
  141. 1340 FORI=1TO9
  142. 1350 R%=RND(1)*4+1
  143. 1360 LA=VAL(OP$(R%,2)):UA=VAL(OP$(R%,3)):LB=VAL(OP$(R%,4)):UB=VAL(OP$(R%,5))
  144. 1370 IFLA=UAORLB=UBTHEN1350
  145. 1380 RA%=RND(1)*(UA-LA)+LA:RB%=RND(1)*(UB-LB)+LB+.5
  146. 1390 IFR%=4THEN1430
  147. 1400 IFR%=1THENAN(I,1)=RA%+RB%
  148. 1410 IFR%=2THENAN(I,1)=RA%-RB%
  149. 1420 IFR%=3THENAN(I,1)=RA%*RB%
  150. 1430 IFR%=4THENAN(I,1)=INT(RND(1)*(SQR(UA)-LA)+LA):RA%=AN(I,1)*RB%
  151. 1440 DD=INT((I-.1)/3)*7+2
  152. 1450 RR=((I+2)-((INT((I+2)/3))*3))*13+2
  153. 1460 GOSUB810
  154. 1470 PRINTRA%;MID$(OP$(R%,1),3,1);RB%;"=":NEXTI:RETURN
  155. 1480 DD=INT((BO-.1)/3)*7+6
  156. 1490 RR=((BO+2)-((INT((BO+2)/3))*3))*13+2
  157. 1500 GOSUB810
  158. 1510 IFF=2THENPRINT"      ":RETURN
  159. 1520 PRINT"ANS=     [157][157][157][157][157]";
  160. 1530 T1$=""
  161. 1540 PRINT"?";
  162. 1550 GETT$:IFT$=""THEN1550
  163. 1555 IFT1$=""THENIFT$=CHR$(13)ORT$=CHR$(20)THEN1550
  164. 1560 IFT$=CHR$(13)THENPRINT"[157] ";:GOTO1620
  165. 1570 IFT$=CHR$(20)THENPRINT"[157] [157][157]?";:T1$=LEFT$(T1$,LEN(T1$)-1):GOTO1550
  166. 1580 PRINT"[157]";T$;
  167. 1590 IFT$="."ORT$="-"THEN1610
  168. 1600 IFT$<"0"ORT$>"9"THENPRINT"[157] [157]?";:GOTO1550
  169. 1610 T1$=T1$+T$:GOTO1540
  170. 1620 AN=VAL(T1$):RETURN
  171. 1630 DD=INT((BO-.1)/3)*7+1
  172. 1640 RR=((BO+2)-((INT((BO+2)/3))*3))*13+2
  173. 1650 IFPL$="[214]"THENAN(BO,2)=1:GOTO1720
  174. 1660 AN(BO,2)=-1
  175. 1670 GOSUB810
  176. 1680 FORI=1TO6:PRINTO$(I):DD=DD+1:GOSUB810:NEXTI
  177. 1690 GOSUB1770@CHECK"[215]"WIN
  178. 1700 IFFL=2THENRETURN
  179. 1710 FL=1:RETURN
  180. 1720 GOSUB810
  181. 1730 FORI=1TO6:PRINTX$(I):DD=DD+1:GOSUB810:NEXTI
  182. 1740 GOSUB1770@CHECK"[214]"WIN
  183. 1750 IFFL=2THENRETURN
  184. 1760 FL=1:RETURN
  185. 1770 IFAN(1,2)=AN(5,2)ANDAN(5,2)=AN(9,2)ANDAN(1,2)<>0THEN1860
  186. 1780 IFAN(3,2)=AN(5,2)ANDAN(5,2)=AN(7,2)ANDAN(5,2)<>0THEN1860
  187. 1790 IFAN(1,2)=AN(4,2)ANDAN(4,2)=AN(7,2)ANDAN(1,2)<>0THEN1860
  188. 1800 IFAN(2,2)=AN(5,2)ANDAN(5,2)=AN(8,2)ANDAN(2,2)<>0THEN1860
  189. 1810 IFAN(3,2)=AN(6,2)ANDAN(6,2)=AN(9,2)ANDAN(3,2)<>0THEN1860
  190. 1820 IFAN(1,2)=AN(2,2)ANDAN(2,2)=AN(3,2)ANDAN(1,2)<>0THEN1860
  191. 1830 IFAN(4,2)=AN(5,2)ANDAN(5,2)=AN(6,2)ANDAN(4,2)<>0THEN1860
  192. 1840 IFAN(7,2)=AN(8,2)ANDAN(8,2)=AN(9,2)ANDAN(7,2)<>0THEN1860
  193. 1850 RETURN
  194. 1860 FORI=1TO250:NEXTI
  195. 1870 FL=2
  196. 1880 PRINT"[147]"
  197. 1890 DD=9:RR=17:GOSUB810
  198. 1900 IFPL$="[214]"THEN1920
  199. 1910 FORI=1TO6:PRINTO$(I):DD=DD+1:GOSUB810:NEXT:PRINT"YOU WIN!":GOSUB1930:RETURN
  200. 1920 FORI=1TO6:PRINTX$(I):DD=DD+1:GOSUB810:NEXT:PRINT"YOU WIN!":GOSUB1930:RETURN
  201. 1930 P=54273:POKE54296,15
  202. 1940 POKE54276,33
  203. 1950 FORJ=1TO5
  204. 1960 POKE53265,11:FORK=1TO50:NEXTK:POKE53265,27
  205. 1970 FORI=250TO140STEP-5:POKE54276,32:POKE54276,33:POKEP,I:NEXTI
  206. 1980 NEXTJ
  207. 1990 POKE54276,32:POKE54296,0
  208. 2000 RETURN
  209. 2010 P=54273:POKE54296,15
  210. 2020 POKE54276,33
  211. 2030 FORI=1TO15:FORJ=1TO3
  212. 2036 POKE54276,32:POKE54276,33:POKEP,J*40-25:NEXT:NEXT
  213. 2040 POKE54276,32:POKE54296,0
  214. 2050 RETURN
  215. 2060 P=54273:POKE54296,15:FORJ=0TO3
  216. 2070 POKE54276,33
  217. 2080 POKEP,125+J*42:FORI=1TO50:NEXTI
  218. 2090 POKE54276,32:FORI=1TO50:NEXT:NEXT:POKE54296,0
  219. 2100 RETURN
  220.